package com.gengzp.system.service;

import com.gengzp.common.model.log.req.CreateOperationLogReq;
import com.gengzp.common.model.log.req.CreateTraceLogReq;
import com.gengzp.common.model.log.req.PageOperationLogReq;
import com.gengzp.common.model.log.req.SearchTraceLogReq;
import com.gengzp.common.model.log.resp.ListTraceLogResp;
import com.gengzp.common.model.log.resp.PageOperationLogResp;
import com.gengzp.common.model.pagination.resp.PaginationResponse;

import java.util.List;

/**
 * @ClassName SysLogService
 * @Description 系统日志服务实现层接口
 * @Author gengzp
 * @Date 2025/9/28 14:57
 */
public interface SysLogService {

    /**
     * 创建系统链路追踪日志
     *
     * @param req 创建系统链路追踪日志请求参数
     */
    void createSysTraceLog(CreateTraceLogReq req);

    /**
     * 查询链路追踪日志列表
     *
     * @param req 查询参数
     * @return 链路追踪日志列表
     */
    List<ListTraceLogResp> listTraceLogs(SearchTraceLogReq req);

    /**
     * 创建系统操作日志
     *
     * @param req 创建系统操作日志请求参数
     */
    void createSysOperationLog(CreateOperationLogReq req);

    /**
     * 分页查询系统操作日志
     *
     * @param req 分页查询参数
     * @return 系统操作日志列表
     */
    PaginationResponse<PageOperationLogResp> pageQueryOperationLogs(PageOperationLogReq req);

    /**
     * 清理过时的链路追踪日志
     */
    void clearOutdatedTraceLogs();

}
